inspector: More refactoring
authorMatthias Clasen <mclasen@redhat.com>
Sat, 11 Oct 2014 01:13:34 +0000 (21:13 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 11 Oct 2014 04:59:36 +0000 (00:59 -0400)
Get rid of gtk_inspector_widget_tree_get_selected_object,
we can just pass the selected object along with the changed
signal.

gtk/inspector/widget-tree.c
gtk/inspector/widget-tree.h
gtk/inspector/window.c

index 67f6bd207aac6f1cb671effe39a2714814c86a01..a819b787f5b5842dae9adaf3bf805d0ad1ca681d 100644 (file)
@@ -81,7 +81,20 @@ static void
 on_widget_selected (GtkTreeSelection       *selection,
                     GtkInspectorWidgetTree *wt)
 {
-  g_signal_emit (wt, widget_tree_signals[WIDGET_CHANGED], 0);
+  GObject *object;
+  GtkTreeIter iter;
+  GtkTreeSelection *sel;
+  GtkTreeModel *model;
+
+  sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree));
+  if (gtk_tree_selection_get_selected (sel, &model, &iter))
+    gtk_tree_model_get (model, &iter,
+                        OBJECT, &object,
+                        -1);
+  else
+    object = NULL;
+
+  g_signal_emit (wt, widget_tree_signals[WIDGET_CHANGED], 0, object);
 }
 
 typedef struct
@@ -187,16 +200,14 @@ gtk_inspector_widget_tree_class_init (GtkInspectorWidgetTreeClass *klass)
 
   object_class->finalize = gtk_inspector_widget_tree_finalize;
 
-  klass->widget_changed = NULL;
-
   widget_tree_signals[WIDGET_CHANGED] =
       g_signal_new ("widget-changed",
-                    G_OBJECT_CLASS_TYPE(klass),
+                    G_OBJECT_CLASS_TYPE (klass),
                     G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE,
                     G_STRUCT_OFFSET(GtkInspectorWidgetTreeClass, widget_changed),
                     NULL, NULL,
-                    g_cclosure_marshal_VOID__VOID,
-                    G_TYPE_NONE, 0);
+                    g_cclosure_marshal_VOID__OBJECT,
+                    G_TYPE_NONE, 1, G_TYPE_OBJECT);
 
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/inspector/widget-tree.ui");
   gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorWidgetTree, model);
@@ -204,27 +215,6 @@ gtk_inspector_widget_tree_class_init (GtkInspectorWidgetTreeClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, on_widget_selected);
 }
 
-GObject *
-gtk_inspector_widget_tree_get_selected_object (GtkInspectorWidgetTree *wt)
-{
-  GtkTreeIter iter;
-  GtkTreeSelection *sel;
-  GtkTreeModel *model;
-
-  sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree));
-
-  if (gtk_tree_selection_get_selected (sel, &model, &iter))
-    {
-      GObject *object;
-      gtk_tree_model_get (model, &iter,
-                          OBJECT, &object,
-                          -1);
-      return object;
-    }
-
-  return NULL;
-}
-
 typedef struct
 {
   GtkInspectorWidgetTree *wt;
index 290058416a51059c2f95ed29e33904c7e4f43b41..3ccd181b62d9ffd2170bb16936d1fa1da654e14b 100644 (file)
@@ -46,7 +46,8 @@ typedef struct _GtkInspectorWidgetTreeClass
 {
   GtkBoxClass parent;
 
-  void (*widget_changed) (GtkInspectorWidgetTree *tree);
+  void (*widget_changed) (GtkInspectorWidgetTree *wt,
+                          GObject                *object);
 } GtkInspectorWidgetTreeClass;
 
 
@@ -55,8 +56,6 @@ G_BEGIN_DECLS
 
 GType      gtk_inspector_widget_tree_get_type            (void);
 
-GObject   *gtk_inspector_widget_tree_get_selected_object (GtkInspectorWidgetTree *wt);
-
 void       gtk_inspector_widget_tree_scan                (GtkInspectorWidgetTree *wt,
                                                           GtkWidget              *window);
 void       gtk_inspector_widget_tree_select_object       (GtkInspectorWidgetTree *wt,
index 4d7a05b4bc2780a8850ff23a40a4e15ce36c3a70..48a5d824441e49b6b50f09744bbb98a6c8063a5f 100644 (file)
@@ -49,9 +49,9 @@ G_DEFINE_TYPE (GtkInspectorWindow, gtk_inspector_window, GTK_TYPE_WINDOW)
 
 static void
 on_widget_tree_selection_changed (GtkInspectorWidgetTree *wt,
+                                  GObject                *selected,
                                   GtkInspectorWindow     *iw)
 {
-  GObject *selected = gtk_inspector_widget_tree_get_selected_object (wt);
   GtkWidget *notebook;
   const gchar *tab;
   gint page_num;